#include <iostream>  // std::cout
#include <algorithm> // std::merge
#include <vector>    // std::vector
using namespace std;
int main()
{
    //first 和 second 数组中各存有 1 个有序序列
    int first[] = {5, 10, 15, 20, 25};
    int second[] = {7, 17, 27, 37, 47, 57};
    //用于存储新的有序序列
    vector<int> myvector(11);
    //将 [first,first+5) 和 [second,second+6) 合并为 1 个有序序列，并存储到 myvector 容器中。
    merge(first, first + 5, second, second + 6, myvector.begin());
    //输出 myvector 容器中存储的元素
    for (vector<int>::iterator it = myvector.begin(); it != myvector.end(); ++it)
    {
        cout << *it << ' ';
    }
    cout << endl;
    //该数组中存储有 2 个有序序列
    int first2[] = {5, 10, 15, 20, 25, 7, 17, 27, 37, 47, 57};
    //将 [first,first+5) 和 [first+5,first+11) 合并为 1 个有序序列。
    inplace_merge(first2, first2 + 5, first2 + 11);
    for (int i = 0; i < 11; i++)
    {
        cout << first2[i] << " ";
    }
    return 0;
}